/******************************************************************************* * Copyright (c) 2010 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation ******************************************************************************/ package org.eclipse.ui.tests.helpers; import java.util.ArrayList; import junit.framework.Assert; import org.eclipse.core.runtime.IStatus; import org.eclipse.jface.action.IContributionItem; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IMemento; import org.eclipse.ui.IPageService; import org.eclipse.ui.IPartService; import org.eclipse.ui.ISelectionService; import org.eclipse.ui.IViewReference; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.internal.FastViewBar; import org.eclipse.ui.internal.FastViewBarContextMenuContribution; import org.eclipse.ui.internal.PartSite; import org.eclipse.ui.internal.SaveableHelper; import org.eclipse.ui.internal.SlavePageService; import org.eclipse.ui.internal.SlavePartService; import org.eclipse.ui.internal.SlaveSelectionService; import org.eclipse.ui.internal.WorkbenchPage; import org.eclipse.ui.internal.WorkbenchWindow; import org.eclipse.ui.internal.registry.IActionSetDescriptor; import org.eclipse.ui.tests.PerspectiveState; /** * @since 3.5 * */ public class TestFacadeImpl extends TestFacade { /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#assertActionSetFound(org.eclipse * .ui.IWorkbenchPage, java.lang.String) */ public void assertActionSetId(IWorkbenchPage page, String id, boolean condition) { IActionSetDescriptor[] sets = ((WorkbenchPage) page).getActionSets(); boolean found = false; for (int i = 0; i < sets.length && !found; i++) { if (id.equals(sets[i].getId())) { found = true; } } Assert.assertEquals("Failed for " + id, condition, found); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#getActionSetCount(org.eclipse * .ui.IWorkbenchPage) */ public int getActionSetCount(IWorkbenchPage page) { return ((WorkbenchPage) page).getActionSets().length; } /* * (non-Javadoc) * * @see org.eclipse.ui.tests.helpers.TestFacade#addFastView(org.eclipse.ui. * IWorkbenchPage, org.eclipse.ui.IViewReference) */ public void addFastView(IWorkbenchPage page, IViewReference ref) { ((WorkbenchPage) page).addFastView(ref); } /* * (non-Javadoc) * * @see org.eclipse.ui.tests.helpers.TestFacade#saveState(org.eclipse.ui. * IWorkbenchPage, org.eclipse.ui.IMemento) */ public IStatus saveState(IWorkbenchPage page, IMemento memento) { return ((WorkbenchPage) page).saveState(memento); } /* * (non-Javadoc) * * @see org.eclipse.ui.tests.helpers.TestFacade#getFastViews(org.eclipse.ui. * IWorkbenchPage) */ public IViewReference[] getFastViews(IWorkbenchPage page) { return ((WorkbenchPage) page).getFastViews(); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#getPerspectivePartIds(org.eclipse * .ui.IWorkbenchPage, java.lang.String) */ public ArrayList getPerspectivePartIds(IWorkbenchPage page, String folderId) { PerspectiveState state = new PerspectiveState(page); return state.getPartIds(folderId); } /* * (non-Javadoc) * * @see org.eclipse.ui.tests.helpers.TestFacade#isFastView(org.eclipse.ui. * IWorkbenchPage, org.eclipse.ui.IViewReference) */ public boolean isFastView(IWorkbenchPage page, IViewReference ref) { return ((WorkbenchPage) page).isFastView(ref); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#testSetAutomatedResponse(int) */ public void saveableHelperSetAutomatedResponse(int response) { SaveableHelper.testSetAutomatedResponse(response); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isSlavePageService(org.eclipse * .ui.IPageService) */ public void isSlavePageService(IPageService slaveService) { Assert.assertTrue(slaveService instanceof SlavePageService); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#getFVBContribution(org.eclipse * .ui.IWorkbenchPage) */ public IContributionItem getFVBContribution(IWorkbenchPage page) { FastViewBar fastViewBar = ((WorkbenchWindow) page.getWorkbenchWindow()) .getFastViewBar(); return fastViewBar.testContextMenu(); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#setFVBTarget(org.eclipse.jface * .action.IContributionItem, org.eclipse.ui.IViewReference) */ public void setFVBTarget(IContributionItem menuContribution, IViewReference viewRef) { ((FastViewBarContextMenuContribution) menuContribution) .setTarget(viewRef); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isViewPaneVisible(org.eclipse * .ui.IViewReference) */ public boolean isViewPaneVisible(IViewReference viewRef) { return ((PartSite) viewRef.getPart(true).getSite()).getPane() .isVisible(); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isViewToolbarVisible(org.eclipse * .ui.IViewReference) */ public boolean isViewToolbarVisible(IViewReference viewRef) { Control toolBar = ((PartSite) viewRef.getPart(true).getSite()) .getPane().getToolBar(); Assert.assertNotNull("This view must have a toolbar", toolBar); return toolBar.isVisible(); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isSlavePartService(org.eclipse * .ui.IPartService) */ public boolean isSlavePartService(IPartService slaveService) { return slaveService instanceof SlavePartService; } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isSlaveSelectionService(org.eclipse * .ui.ISelectionService) */ public boolean isSlaveSelectionService(ISelectionService slaveService) { return slaveService instanceof SlaveSelectionService; } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isClosableInPerspective(org.eclipse * .ui.IWorkbenchPartReference) */ public boolean isClosableInPerspective(IViewReference ref) { return ((WorkbenchPage) ref.getPage()).getActivePerspective() .isCloseable(ref); } /* * (non-Javadoc) * * @see * org.eclipse.ui.tests.helpers.TestFacade#isMoveableInPerspective(org.eclipse * .ui.IWorkbenchPartReference) */ public boolean isMoveableInPerspective(IViewReference ref) { return ((WorkbenchPage) ref.getPage()).getActivePerspective() .isMoveable(ref); } }